﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Qios.DevSuite.Components;
using BusinessObject;
using YamahaTuanTruc.CustomerService;

namespace YamahaTuanTruc.Controls
{
    public partial class QpCustomerForm : QCustomPanel
    {
        public bool IsCreateNew { get; set; }

        public KhachHang Customer { get; set; }

        public QpCustomerForm()
        {
            InitializeComponent();
            //InitializeState();
        }

        public void InitializeState()
        {
            //IsCreateNew = (Customer == null);
            if (IsCreateNew)
            {
                qcibMaKH.InputBox.Clear();
                qcibTen.InputBox.Clear();
                qcibDiaChi.InputBox.Clear();
                qcibDienThoai.InputBox.Clear();
                qcibXe.InputBox.Clear();
            }
            else
            {
                qcibMaKH.InputBox.Text = Customer.ID.ToString();
                qcibTen.InputBox.Text = Customer.Ten;
                qcibDiaChi.InputBox.Text = Customer.DienThoai;
                qcibDienThoai.InputBox.Text = Customer.DienThoai;
                qcibXe.InputBox.DataSource = Customer.Xe;
                qcibXe.InputBox.ValueMember = "ID";
            }

            qcbCapNhat.Enabled = !IsCreateNew;
            qcbTaoMoi.Enabled = !IsCreateNew;
            qcbThem.Enabled = IsCreateNew;
            qcbXoa.Enabled = !IsCreateNew;
        }

        private void qcbTaoMoi_ItemActivated(object sender, QCompositeEventArgs e)
        {
            Customer = null;
            InitializeState();
        }

        private void qcbThem_ItemActivated(object sender, QCompositeEventArgs e)
        {
            KhachHang kh = new KhachHang();
            kh.Ten = qcibTen.InputBox.Text;
            kh.DienThoai = qcibDienThoai.InputBox.Text;

            using (var service = new CustomerServiceClient())
            {
                kh = service.SaveCustomer(kh);
                if (kh != null)
                {
                    MessageBox.Show("Thêm khách hàng mới thành công");
                    Customer = kh;
                    InitializeState();
                    OnDataUpdated(this, new EventArgs());
                }
                else
                {
                    MessageBox.Show("Thêm khách hàng không thành công, vui lòng kiểm tra lại thông tin", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }

        private void qcbCapNhat_ItemActivated(object sender, QCompositeEventArgs e)
        {
            KhachHang kh = Customer;
            kh.Ten = qcibTen.InputBox.Text;
            kh.DienThoai = qcibDienThoai.InputBox.Text;

            using (var service = new CustomerServiceClient())
            {
                kh = service.SaveCustomer(kh);
                if (kh != null)
                {
                    MessageBox.Show("Cập nhật thông tin khách hàng thành công");
                    Customer = null;
                    InitializeState();
                    OnDataUpdated(this, new EventArgs());
                }
                else
                {
                    MessageBox.Show("Cập nhật thông tin khách hàng không thành công, vui lòng kiểm tra lại thông tin", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }

        private void qcbXoa_ItemActivated(object sender, QCompositeEventArgs e)
        {
            if (MessageBox.Show("Xóa khách hàng này?", "Xác nhận xóa", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                OnDataUpdated(this, new EventArgs());
            }
        }
    }
}